package com.mgkj.demo.entity.eten;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;

import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 品号采购信息/CHT/品號採購資料/ENU/Item Purchase Data
 * </p>
 *
 * @author yyyjcg
 * @since 2024-10-11
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="ItemPurchase对象", description="品号采购信息/CHT/品號採購資料/ENU/Item Purchase Data")
public class ItemPurchase extends Model<ItemPurchase> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "关联部门")
    @TableField("Owner_Dept")
    private String ownerDept;

    @ApiModelProperty(value = "关联员工")
    @TableField("Owner_Emp")
    private String ownerEmp;

    @ApiModelProperty(value = "主键")
      @TableId(value = "ITEM_BUSINESS_ID", type = IdType.AUTO)
    private String itemBusinessId;

    @ApiModelProperty(value = "批量")
    private Double batchQuantityP;

    @ApiModelProperty(value = "采购变动前置天数")
    private Integer dynamicLeadTimeP;

    @ApiModelProperty(value = "采购固定前置天数")
    private Integer fixedLeadTimeP;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "供应商策略")
    private String supplierPolicy;

    @ApiModelProperty(value = "询价周期天数")
    private Integer inquiriesCycles;

    @ApiModelProperty(value = "询价家数")
    private Integer inquiriesNumbers;

    @ApiModelProperty(value = "询价策略")
    private String inquiriesPolicy;

    @ApiModelProperty(value = "单价上限率")
    private Double priceUpperLimitRate;

    @ApiModelProperty(value = "进价控制")
    private Boolean purchasePriceControl;

    @ApiModelProperty(value = "允许早收")
    private Boolean receiptAheadControl;

    @ApiModelProperty(value = "超收管理")
    private Boolean receiptOverControl;

    @ApiModelProperty(value = "超收率")
    private Double receiptOverRate;

    @ApiModelProperty(value = "CKD品号价格")
    private String ckdItemPricePo;

    @ApiModelProperty(value = "CKD成套进货")
    private Boolean ckdPackingPo;

    @ApiModelProperty(value = "CKD成套采购退货")
    private Boolean ckdPackingPoReturn;

    @ApiModelProperty(value = "商品允许短收")
    private Boolean generalReceiptShortCtl;

    @ApiModelProperty(value = "商品短收比例")
    private Double generalReceiptShortRate;

    @ApiModelProperty(value = "赠备品允许短收")
    private Boolean largessReceiptShortCtl;

    @ApiModelProperty(value = "赠备品短收比例")
    private Double largessReceiptShortRate;

    @ApiModelProperty(value = "计价单位和采购单位须相同")
    private Boolean unitDiffer;

    @ApiModelProperty(value = "品号")
    private String itemId;

    @ApiModelProperty(value = "采购单位")
    private String purUnitId;

    @ApiModelProperty(value = "采购计价单位")
    private String purPriceUnitId;

    @ApiModelProperty(value = "存货/服务税分类编号")
    private String itemTaxClassificationId;

    @ApiModelProperty(value = "最低补量")
    private Double minimumOrderQuantity;

    @ApiModelProperty(value = "采购倍量")
    private Double orderMultiple;

    @ApiModelProperty(value = "品号来源")
    private String source;

    @ApiModelProperty(value = "PLM传输批次号")
    private String plmDatakey;

    @ApiModelProperty(value = "采购员")
    private String buyerId;

    @ApiModelProperty(value = "请转采考虑补货机制")
    private Boolean considerOrderRule;

    @ApiModelProperty(value = "自定义字段0")
    private Double udf001;

    @ApiModelProperty(value = "自定义字段1")
    private Double udf002;

    @ApiModelProperty(value = "自定义字段2")
    private Double udf003;

    @ApiModelProperty(value = "自定义字段3")
    private Double udf011;

    @ApiModelProperty(value = "自定义字段4")
    private Double udf012;

    @ApiModelProperty(value = "自定义字段5")
    private Double udf013;

    @ApiModelProperty(value = "自定义字段6")
    private String udf021;

    @ApiModelProperty(value = "自定义字段7")
    private String udf022;

    @ApiModelProperty(value = "自定义字段8")
    private String udf023;

    @ApiModelProperty(value = "自定义字段9")
    private String udf024;

    @ApiModelProperty(value = "自定义字段10")
    private String udf025;

    @ApiModelProperty(value = "自定义字段11")
    private String udf026;

    @ApiModelProperty(value = "自定义字段12")
    private LocalDateTime udf041;

    @ApiModelProperty(value = "自定义字段13")
    private LocalDateTime udf042;

    @ApiModelProperty(value = "自定义字段14")
    private String udf051;

    @ApiModelProperty(value = "自定义字段15")
    private String udf052;

    @ApiModelProperty(value = "自定义字段16")
    private String udf053;

    @ApiModelProperty(value = "自定义字段17")
    private String udf054;

    @ApiModelProperty(value = "版本号，不要随意更改")
    @TableField("Version")
    private LocalDateTime version;

    @ApiModelProperty(value = "单据状态属性")
    @TableField("ApproveStatus")
    private String approvestatus;

    @ApiModelProperty(value = "修改日期")
    @TableField("ApproveDate")
    private LocalDateTime approvedate;

    @ApiModelProperty(value = "修改人")
    @TableField("ApproveBy")
    private String approveby;

    @ApiModelProperty(value = "创建日期")
    @TableField("CreateDate")
    private LocalDateTime createdate;

    @ApiModelProperty(value = "最后修改日期")
    @TableField("LastModifiedDate")
    private LocalDateTime lastmodifieddate;

    @ApiModelProperty(value = "修改日期")
    @TableField("ModifiedDate")
    private LocalDateTime modifieddate;

    @ApiModelProperty(value = "创建者")
    @TableField("CreateBy")
    private String createby;

    @ApiModelProperty(value = "最后修改者")
    @TableField("LastModifiedBy")
    private String lastmodifiedby;

    @ApiModelProperty(value = "修改者")
    @TableField("ModifiedBy")
    private String modifiedby;

    @ApiModelProperty(value = "附件")
    @TableField("Attachments")
    private String attachments;

    @ApiModelProperty(value = "表单所在的流程实例的编号")
    @TableField("ProcessInstanceId")
    private String processinstanceid;

    @TableField("Owner_Org_RTK")
    private String ownerOrgRtk;

    @TableField("Owner_Org_ROid")
    private String ownerOrgRoid;


    @Override
    protected Serializable pkVal() {
        return this.itemBusinessId;
    }

}
